package com.tkm.builtinTypes.arrays

fun main() {
    //  Kotlin中的数组：IntArray、StringArray等，静态数组，长度固定
    //  相当于Java中的int[]、string[]
    val a = IntArray(5)
    println(a.size)

    //  Kotlin中的动态数组，长度可变
    val b = ArrayList<Int>()
    b.add(1)
    b.add(2)
    println(b.size)

    //  创建数组
    val c0 = intArrayOf(1, 2, 3, 4, 5)
    val c1 = IntArray(5){ 3 * (it + 1) }
    println(c0.contentToString())
    println(c1.contentToString())

    //  数组元素的读写
    val d = arrayOf("Hello", "Kotlin")
    d[1] = "World"
    println(d[0])
    println(d.contentToString())

    //  数组的遍历
    val e = floatArrayOf(1f, 3f, 5f, 7f)
    //  for-in遍历
    for (el in e) {
        print(el)
    }
    //  forEach遍历
    e.forEach { el -> println(el) }
    e.forEach { println(it) }

    //  判断元素在不在数组中
    //  Kotlin1.6删除了Float的in运算符，无法使用(1f in e)判断
    if (1f in e.asList()) {
        println("1f exists in e")
    }

    if (e.asList().contains(1f)) {
        println("e contains 1f")
    }

    if (e.any { it == 1f }) {
        println("e has 1f")
    }

    if (1.2f !in e.asList()) {
        print("1.2f not exists in e")
    }
}
